﻿#region License
// (c) Intergen.
// This source is subject to the Microsoft Public License (Ms-PL).
// Please see http://go.microsoft.com/fwlink/?LinkID=131993 for details.
// All other rights reserved.
#endregion

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace MediaWiki.Office.Packaging
{
  public interface IContainer
  {
    /// <summary>
    /// Gets the container's child parts.
    /// </summary>
    /// <value>The parts.</value>
    IDictionary<string, IPackagePart> Parts { get; }

    /// <summary>
    /// Gets the container's relationships.
    /// </summary>
    /// <value>The relationships.</value>
    PackageRelationshipCollection Relationships { get; }

    IPackagePart CreatePart(Uri partUri, string relationshipType);

    /// <summary>
    /// Gets the container URI.
    /// </summary>
    /// <value>The URI.</value>
    Uri Uri { get; }

    /// <summary>
    /// Gets the child part of the given PartType.
    /// </summary>
    /// <param name="partType">Type of the part.</param>
    /// <returns></returns>
    IPackagePart GetPart(PartType partType);

    /// <summary>
    /// Gets the child parts of the given PartType.
    /// </summary>
    /// <param name="partType">Type of the part.</param>
    /// <returns></returns>
    IList<IPackagePart> GetParts(PartType partType);
  }
}